package br.cs.correspodente.beans;

import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.eclipse.persistence.annotations.TypeConverter;

@Entity
public class Comprador extends Pessoa{
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;
	private String email;
	@Temporal(TemporalType.DATE)
	private Date data_Nasc;
	private String endereco;
	private String conta;
	private String agencia;
	private String conjuge;
	private String naturalidade;
	private String nacionalidade;
	private String rg;
	private String pis;
	private Float renda_Formal;
	private Float renda_informal;
	@OneToMany(mappedBy="comprador",cascade=CascadeType.ALL)
	private List<Financiamento> finaciamentos;
	
	@OneToMany(mappedBy="comprador",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
	private List<Telefone_Comprador> telefones;
	
	public Comprador(String nome, String cpf, Integer id, String email,
			Date data_Nasc, String endereco, String conta, String agencia,
			String conjuge, String naturalidade, String nacionalidade,
			String rg, String pis, Float renda_Formal, Float renda_informal,
			List<Financiamento> finaciamentos,
			List<Telefone_Comprador> compradores) {
		super(nome, cpf);
		this.id = id;
		this.email = email;
		this.data_Nasc = data_Nasc;
		this.endereco = endereco;
		this.conta = conta;
		this.agencia = agencia;
		this.conjuge = conjuge;
		this.naturalidade = naturalidade;
		this.nacionalidade = nacionalidade;
		this.rg = rg;
		this.pis = pis;
		this.renda_Formal = renda_Formal;
		this.renda_informal = renda_informal;
		this.finaciamentos = finaciamentos;
		this.telefones = compradores;
	}

	public List<Telefone_Comprador> getCompradores() {
		return telefones;
	}

	public void setCompradores(List<Telefone_Comprador> compradores) {
		this.telefones = compradores;
	}

	public Comprador(String nome, String cpf) {
		super(nome, cpf);
	}
	
	public Comprador(String nome, String cpf, Integer id) {
		super(nome, cpf);
		this.id = id;
	}
	public Comprador(String nome, String cpf, Integer id, String email,
			Date data_Nasc, String endereco, String conta, String agencia,
			String conjuge, String naturalidade, String nacionalidade,
			String rg, String pis, Float renda_Formal, Float renda_informal) {
		super(nome, cpf);
		this.id = id;
		this.email = email;
		this.data_Nasc = data_Nasc;
		this.endereco = endereco;
		this.conta = conta;
		this.agencia = agencia;
		this.conjuge = conjuge;
		this.naturalidade = naturalidade;
		this.nacionalidade = nacionalidade;
		this.rg = rg;
		this.pis = pis;
		this.renda_Formal = renda_Formal;
		this.renda_informal = renda_informal;
	}


	public Comprador(String nome, String cpf, Integer id, String email,
			Date data_Nasc, String endereco, String conta, String agencia,
			String conjuge, String naturalidade, String nacionalidade,
			String rg, String pis, Float renda_Formal, Float renda_informal,
			List<Financiamento> finaciamentos) {
		super(nome, cpf);
		this.id = id;
		this.email = email;
		this.data_Nasc = data_Nasc;
		this.endereco = endereco;
		this.conta = conta;
		this.agencia = agencia;
		this.conjuge = conjuge;
		this.naturalidade = naturalidade;
		this.nacionalidade = nacionalidade;
		this.rg = rg;
		this.pis = pis;
		this.renda_Formal = renda_Formal;
		this.renda_informal = renda_informal;
		this.finaciamentos = finaciamentos;
	}


	public Comprador() {
	}
	/*----------------------------------------------------------------------
	 * 
	 * Gets And Sets
 -----------------------------------------------------------------------*/


	public Date getData_Nasc() {
		return data_Nasc;
	}
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public void setData_Nasc(Date data_Nasc) {
		this.data_Nasc = data_Nasc;
	}
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}
	public String getConta() {
		return conta;
	}
	public void setConta(String conta) {
		this.conta = conta;
	}
	public String getAgencia() {
		return agencia;
	}
	public void setAgencia(String agencia) {
		this.agencia = agencia;
	}
	public String getConjuge() {
		return conjuge;
	}
	public void setConjuge(String conjuge) {
		this.conjuge = conjuge;
	}
	public String getNaturalidade() {
		return naturalidade;
	}
	public void setNaturalidade(String naturalidade) {
		this.naturalidade = naturalidade;
	}
	public String getNacionalidade() {
		return nacionalidade;
	}
	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}
	public String getRg() {
		return rg;
	}
	public void setRg(String rg) {
		this.rg = rg;
	}
	public String getPis() {
		return pis;
	}
	public void setPis(String pis) {
		this.pis = pis;
	}
	public Float getRenda_Formal() {
		return renda_Formal;
	}
	public void setRenda_Formal(Float renda_Formal) {
		this.renda_Formal = renda_Formal;
	}
	public Float getRenda_informal() {
		return renda_informal;
	}
	public void setRenda_informal(Float renda_informal) {
		this.renda_informal = renda_informal;
	}

	public List<Financiamento> getFinaciamentos() {
		return finaciamentos;
	}

	public void setFinaciamentos(List<Financiamento> finaciamentos) {
		this.finaciamentos = finaciamentos;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	

}
